import App from './App'
import { createSSRApp } from 'vue'
import store from './store'
import bootstrap from './core/bootstrap'
import mixin from './core/mixins/app'
import uView from './uni_modules/vk-uview-ui'
import { navTo, showToast, showSuccess, showError, getShareUrlParams, checkModuleKey, checkModules } from './core/app' 
import api from './api/index.js'


// 时间戳转年月日
function timestampToDate(timestamp) {
    // 创建一个新的 Date 对象
    var date = new Date(timestamp * 1000); // 注意：通常从服务器获取的时间戳是以秒为单位的，所以需要乘以 1000 转换为毫秒
    // 获取年月日
    var year = date.getFullYear();
    var month = ("0" + (date.getMonth() + 1)).slice(-2); // getMonth() 返回的是 0-11 的月份，所以需要加 1，并确保月份始终为两位数
    var day = ("0" + date.getDate()).slice(-2); // 确保日期始终为两位数
    // 返回格式化的日期字符串
    return year + '-' + month + '-' + day;
}


// 时间戳转年月日+一个月
function addOneMonthAndFormat(timestamp) {
    // 创建一个新的 Date 对象
    var date = new Date(timestamp * 1000); // 时间戳通常是以秒为单位的
    // 增加一个月
    date.setMonth(date.getMonth() + 1);
    // 获取年月日
    var year = date.getFullYear();
    var month = ("0" + (date.getMonth() + 1)).slice(-2); // 确保月份始终为两位数
    var day = ("0" + date.getDate()).slice(-2); // 确保日期始终为两位数
    // 返回格式化的日期字符串
    return year + '-' + month + '-' + day;
}


// 不能修改createApp方法名，不能修改从Vue中导入的createSSRApp
export function createApp() {
  // 创建应用实例
  const app = createSSRApp({ ...App, store, created: bootstrap })

  // 挂载全局函数
  app.config.globalProperties.$toast = showToast
  app.config.globalProperties.$success = showSuccess
  app.config.globalProperties.$error = showError
  app.config.globalProperties.$navTo = navTo
  app.config.globalProperties.$getShareUrlParams = getShareUrlParams
  app.config.globalProperties.$checkModule = checkModuleKey
  app.config.globalProperties.$checkModules = checkModules
  app.config.globalProperties.$api = api
  app.config.globalProperties.$timestampToDate = timestampToDate
  app.config.globalProperties.$addOneMonthAndFormat = addOneMonthAndFormat
  
  
  
  
  
  // 使用 uView UI
  app.use(uView)

  // 全局mixin
  app.mixin(mixin)

  return { app }
}